home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicSplitPaneDivider$DragController.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.4 KB  |  82 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.event.MouseEvent;
  5. import java.util.EventObject;
  6. import javax.swing.JSplitPane;
  7.  
  8. public class BasicSplitPaneDivider$DragController {
  9.    // $FF: synthetic field
  10.    private final BasicSplitPaneDivider this$0;
  11.    int initialX;
  12.    int maxX;
  13.    int minX;
  14.    int offset;
  15.  
  16.    protected BasicSplitPaneDivider$DragController(BasicSplitPaneDivider var1, MouseEvent var2) {
  17.       this.this$0 = var1;
  18.       JSplitPane var3 = var1.splitPaneUI.getSplitPane();
  19.       Component var4 = var3.getLeftComponent();
  20.       Component var5 = var3.getRightComponent();
  21.       this.initialX = ((Component)var1).getLocation().x;
  22.       if (((EventObject)var2).getSource() == var1) {
  23.          this.offset = var2.getX();
  24.       } else {
  25.          this.offset = var2.getX() - this.initialX;
  26.       }
  27.  
  28.       if (var4 != null && var5 != null && this.offset >= -1 && this.offset <= ((Component)var1).getSize().width) {
  29.          int var6 = this.initialX - var4.getSize().width;
  30.          if (var4.isVisible()) {
  31.             this.minX = var4.getMinimumSize().width + var6;
  32.          } else {
  33.             this.minX = 0;
  34.          }
  35.  
  36.          if (var5.isVisible()) {
  37.             this.maxX = Math.max(0, ((Component)var3).getSize().width - (((Component)var1).getSize().width + var6) - var5.getMinimumSize().width);
  38.          } else {
  39.             this.maxX = Math.max(0, ((Component)var3).getSize().width - (((Component)var1).getSize().width + var6));
  40.          }
  41.  
  42.          if (this.maxX < this.minX) {
  43.             this.minX = this.maxX = 0;
  44.          }
  45.       } else {
  46.          this.maxX = -1;
  47.       }
  48.  
  49.    }
  50.  
  51.    protected void completeDrag(int var1, int var2) {
  52.       this.this$0.finishDraggingTo(this.getNeededLocation(var1, var2));
  53.    }
  54.  
  55.    protected void completeDrag(MouseEvent var1) {
  56.       this.this$0.finishDraggingTo(this.positionForMouseEvent(var1));
  57.    }
  58.  
  59.    protected void continueDrag(int var1, int var2) {
  60.       this.this$0.dragDividerTo(this.getNeededLocation(var1, var2));
  61.    }
  62.  
  63.    protected void continueDrag(MouseEvent var1) {
  64.       this.this$0.dragDividerTo(this.positionForMouseEvent(var1));
  65.    }
  66.  
  67.    protected int getNeededLocation(int var1, int var2) {
  68.       int var3 = Math.min(this.maxX, Math.max(this.minX, var1 - this.offset));
  69.       return var3;
  70.    }
  71.  
  72.    protected boolean isValid() {
  73.       return this.maxX > 0;
  74.    }
  75.  
  76.    protected int positionForMouseEvent(MouseEvent var1) {
  77.       int var2 = ((EventObject)var1).getSource() == this.this$0 ? var1.getX() + this.this$0.getLocation().x : var1.getX();
  78.       var2 = Math.min(this.maxX, Math.max(this.minX, var2 - this.offset));
  79.       return var2;
  80.    }
  81. }
  82.